// pages/p-info/p-info.js
const api = require('../../utils/api')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    isChange: false,
    confirmButton: [{text: '取消'}, {text: '确定'}],
    changing: false,
    info: {},
    newInfo: {}, // 保存要修改的信息
  },
  showChange() {
    if (this.data.changing) {
      this.setData({
        isChange: true
      })
    } else {
      this.setData({
        changing: true
      })
    }
  },
  hideChange(event) {
    this.setData({
      isChange: false,
      changing: false
    })
    const isConfirm = event.detail.index
    if (isConfirm == 1) {
      const info = this.data.newInfo
      // 如果未修改，则提示用户，并什么也不做
      const old = this.data.info
      if (info.school === old.school && info.academy === old.academy) {
        wx.showToast({
          title: '未修改信息',
          mask: true,
          icon: 'none',
          duration: 1000
        })
        return
      }
      this.setData({info})
      api.updateInfo(info, (data) => {
        console.log(data);
      })
    } else {
      // 如果修改了 input，但没有提交，则页面显示修改后的，此处重新设置值，让其显示原来的
      this.setData({info: this.data.info}) 
    }
  },
  formSubmit(e) {
    // 将要修改的信息保存在 newInfo 中
    const {school, academy} = e.detail.value
    const newInfo = {...this.data.info}
    newInfo.school = school
    newInfo.academy = academy
    this.setData({newInfo})
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (option) {
    const eventChannel = this.getOpenerEventChannel()
    eventChannel.on('sendData', data => {
      console.log(data);
      this.setData({info: data})
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})